package com.txzt.gaea.upgrade.result.domain.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.beetl.sql.core.annotatoin.InsertIgnore;
import org.beetl.sql.core.annotatoin.Table;
import org.beetl.sql.core.annotatoin.UpdateIgnore;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;


@Data
@Table(name="tb_result_info")
public class ResultInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 成果申请id */
    private Long id;
    /** 流程id */
    private Long flowId;

    /** 成果编号 */
    private String resultNo;
    /** 成果名称 */
    private String resultName;
    /** 成果状态 */
    private Integer resultStatus;
    /** 成果类别 */
    private String resultType;
    /** 完成时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date finishTime;
    /** 任务来源 */
    private String taskSource;
    /** 承担部门 */
    private Long departId;
    /** 负责人 */
    private Long projectLeader;
    /** 存放地点 */
    private String storagePlace;
    /** 成果形式 */
    private String resultForm;
    /** 成果应用情况 */
    private String resultApply;
    /** 预期应用情况 */
    private String expectApply;
    /** 成果附件 */
    private String resultFile;

    /** 备注 */
    private String remark;
    /** 提报人 */
    private Long createBy;
    /** 提报时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /** 更新人 */
    private Long updateBy;
    /** 更新时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    /** 提报部门 */
    private Long deptId;
    /** 删除标志 */
    private Integer isDelete;


    /** 权限用户 */
    @UpdateIgnore
    @InsertIgnore
    private Long permissionUser;

    /** 权限部门 */
    @UpdateIgnore
    @InsertIgnore
    private Long permissionDept;

    /** 当前登录用户 */
    @UpdateIgnore
    @InsertIgnore
    private Long currentUser;

    /** 是否可审核 */
    @UpdateIgnore
    @InsertIgnore
    private Boolean isCheck;

    /** 是否可撤回 */
    @UpdateIgnore
    @InsertIgnore
    private Boolean isRevocation;

    /** 是否可撤回流程 */
    @UpdateIgnore
    @InsertIgnore
    private Boolean isFlowRevocation;


    /** 负责人名 */
    @UpdateIgnore
    @InsertIgnore
    private String projectLeaderName;
    /** 承担部门名 */
    @UpdateIgnore
    @InsertIgnore
    private String departName;
    /** 提报人名 */
    @UpdateIgnore
    @InsertIgnore
    private String createByName;
    /** 提报部门名 */
    @UpdateIgnore
    @InsertIgnore
    private String deptName;
    /** 当前审核步骤用户 */
    @UpdateIgnore
    @InsertIgnore
    private String currentStepUserName;
    /** 当前审核状态 */
    @UpdateIgnore
    @InsertIgnore
    private String currentStatus;

    /** 是否审核提交 */
    @UpdateIgnore
    @InsertIgnore
    private Boolean isCheckSubmit;

    /** 当前审批用户 */
    @UpdateIgnore
    @InsertIgnore
    private Long currentStepMember;
}
